/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.ui.ApplicationFrame;
/**
 *
 * @author Ele
 */
public  class graficos extends JPanel {
 
 public void graficos(){
    //GraficoPorcentajeEstadoAnimal();
     GraficoTorta();
}
  
    
   public void Conectar(){
        try{
            
            mdbc = new conexion();
            mdbc.init();
            Connection conn= mdbc.getMyConnection();
            stmt = conn.createStatement();
        }catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, "Problemas al concetarse a la Base de Datos","Error",JOptionPane.ERROR_MESSAGE);
        }
    }
    
public void GraficoPorcentajeEstadoAnimal() {
     ChartPanel cp=null;
    DefaultPieDataset data = new DefaultPieDataset();
        String comando = "select e.descripcion , round(((count(*)  * 100)/ (select count(*) from bovino)),2) as porcentaje"
                + " from bovino b , estadoanimal e where b.idestadoanimal<=4 and b.idestadoanimal= e.idestadoanimal"
                + " group by b.idestadoanimal";
        String datos[][]= new String [2][4];
        try{
            Conectar();
            ResultSet rs = stmt.executeQuery(comando);
             rs.beforeFirst();
             
             while(rs.next()){
                 
                         String estado= rs.getString("descripcion");
                         String porcentaje = rs.getString("porcentaje");
                         data.setValue(estado+":"+porcentaje,Float.parseFloat(porcentaje));
             }
        JFreeChart chart = ChartFactory.createPieChart(
                           "Estadisticas por estado de animal", //Títrulo del gráfico
                           data,
                           true,//Leyenda
                           true,//ToolTips
                           true);
        //Creamos una especie de frame y mostramos el JFreeChart en él
        //Este constructor nos pide el título del Chart y el chart creado
        ChartFrame frame=new  ChartFrame("Estadisticas",chart);
        frame.pack();
        frame.setVisible(true);

        }
              
        catch(Exception ex){
            JOptionPane.showMessageDialog(null,ex.getMessage(),"ERROR",JOptionPane.ERROR_MESSAGE);
        }
     
     
    }    

    
public void GraficoTorta() {
        //Crear un dataset
        DefaultPieDataset data = new DefaultPieDataset();
        data.setValue("Preañada grande",43.2);
        data.setValue("Preañad chica",27.9);
        data.setValue("Vacia",79.5);
        data.setValue("Vacia con cría",79.5);
        
        
        //Creamos un Chart
        JFreeChart chart = ChartFactory.createPieChart(
                           "Ejemplo de JFreeChart", //Títrulo del gráfico
                           data,
                           true,//Leyenda
                           true,//ToolTips
                           true);
        PiePlot3D plot3 = (PiePlot3D) chart.getPlot();
        plot3.setForegroundAlpha(0.6f);
        plot3.setCircular(true);
        //Creamos una especie de frame y mostramos el JFreeChart en él
        //Este constructor nos pide el título del Chart y el chart creado
        ChartFrame frame=new ChartFrame("Porcentaje de animales por estado",chart);
        frame.pack();
        frame.setVisible(true);
    
}   
  private conexion mdbc;
  private Statement stmt;
  
}
